Many integrated circuits include flip-flops or latches to help carry out various sequential logic functions. Also, static RAM can be used to configure the functionality of circuits. When the power to an integrated circuit is turned on, it is usually important for proper operation of the circuit that these storage elements assume a certain initial state and be correctly loaded with specified data before beginning any functional operations. If there is a problem in the start-up conditions, it is possible that the state of the storage elements may be flipped from their desired initial state, and incorrect data may be stored, which could cause errors in subsequent device operation. It is often difficult to know whether the storage elements have correctly assumed their desired initial state and that data has been loaded correctly, since functional errors in device operation can sometimes be rather subtle. It is desirable for at least some of these storage elements be tolerant of start-up condition problems and tolerant of voltage supply noise during device operation, so that they still output the correct value.
An objective of the present invention is to provide a data storage circuit that corrects commonly occurring errors in the initial states of an integrated circuit's storage elements during start-up before any circuit operations begin and during operation when there is voltage supply noise.